681C - Heap Operations - CodeForces Solution


constructive algorithms data structures greedy *1600

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;


typedef  long long int   ll;


int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
ll test,h,p,i,j,s,xy,n,flag=0,u,count,d,o1=0,o2=0,e,l,r,x,y,m,z,max1,x1,y1,k,x2,y2,z1,z2,sum,min1;
vector<pair<string,ll>>ans;
cin>>n;
priority_queue<ll,vector<ll>,greater<>>mk;
for(i=0;i<n;i++){
    string a;
    cin>>a;
    x=0;
    if(a[0]=='i'){
        cin>>x;
        ans.push_back({a,x});
        mk.push(x);
    }else{
        if(a[0]=='g'){
            cin>>x;
            while(mk.size()&&x>mk.top()){
                ans.push_back({"removeMin",0});
                mk.pop();
            }
            if(mk.size()==0||mk.top()>x){
                ans.push_back({"insert",x});
                mk.push(x);
            }
            ans.push_back({a,x});
        }else{
            if(mk.size()==0){
                ans.push_back({"insert",1});
                mk.push(1);
            }
            ans.push_back({a,0});
            mk.pop();
        }
    }
}
cout<<ans.size()<<"\n";
for(auto dd:ans){
    cout<<dd.first<<" ";
    if(dd.first[0]!='r'){
        cout<<dd.second<<" ";
    }
    cout<<"\n";
}
return 0;
}


Comments

Submit
1 Comments
  • 4/12/2023 14:36 - Africa/Cairo

#include<bits/stdc++.h>
using namespace std;


typedef  long long int   ll;


int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
ll test,h,p,i,j,s,xy,n,flag=0,u,count,d,o1=0,o2=0,e,l,r,x,y,m,z,max1,x1,y1,k,x2,y2,z1,z2,sum,min1;
vector<pair<string,ll>>ans;
cin>>n;
priority_queue<ll,vector<ll>,greater<>>mk;
for(i=0;i<n;i++){
    string a;
    cin>>a;
    x=0;
    if(a[0]=='i'){
        cin>>x;
        ans.push_back({a,x});
        mk.push(x);
    }else{
        if(a[0]=='g'){
            cin>>x;
            while(mk.size()&&x>mk.top()){
                ans.push_back({"removeMin",0});
                mk.pop();
            }
            if(mk.size()==0||mk.top()>x){
                ans.push_back({"insert",x});
                mk.push(x);
            }
            ans.push_back({a,x});
        }else{
            if(mk.size()==0){
                ans.push_back({"insert",1});
                mk.push(1);
            }
            ans.push_back({a,0});
            mk.pop();
        }
    }
}
cout<<ans.size()<<"\n";
for(auto dd:ans){
    cout<<dd.first<<" ";
    if(dd.first[0]!='r'){
        cout<<dd.second<<" ";
    }
    cout<<"\n";
}
return 0;
}


More Questions

628. Maximum Product of Three Numbers
1526A - Mean Inequality
1526B - I Hate 1111
1881. Maximum Value after Insertion
237. Delete Node in a Linked List
27. Remove Element
39. Combination Sum
378. Kth Smallest Element in a Sorted Matrix
162. Find Peak Element
1529A - Eshag Loves Big Arrays
19. Remove Nth Node From End of List
925. Long Pressed Name
1051. Height Checker
695. Max Area of Island
402. Remove K Digits
97. Interleaving String
543. Diameter of Binary Tree
124. Binary Tree Maximum Path Sum
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
501A - Contest
160A- Twins
752. Open the Lock
1535A - Fair Playoff
1538F - Interesting Function
1920. Build Array from Permutation
494. Target Sum
797. All Paths From Source to Target
1547B - Alphabetical Strings
1550A - Find The Array
118B - Present from Lena